Keyboard-operated electronic musical tone generators using digital circuit logic are well-known. In the implementation of digital musical tone generators of the types such as the Digital Organ described in U.S. Pat. No. 3,515,792 and the Polyphonic Tone Synthesizer described in U.S. Pat. No. 4,085,644 a set of variable frequency timing clock sources is required for addessing waveshape data that resides in storage memories.
In U.S. Pat. No. 4,085,644 there is described a keyboard musical instrument in which a plurality of tone generators are provided, each tone generator creates a musical tone from a master data list. The master data list consists of the amplitude values of equally spaced points along one cycle of the musical tone which is to be generated. The master data list for each tone generator is stored in a shift register. The amplitude values are shifted out of the register to a digital-to-analog converter at a shift frequency which is directly proportional to the fundamental frequency of the musical note being generated.
As described in U.S. Pat. No. 4,085,644, the shift frequency is derived from a variable frequency oscillator. The frequency of the oscillator is selectively controlled by actuating a keyboard switch on the musical instrument. As assignor circuit stores the actuated switch identification as a musical note in a memory and assigns a tone generator to the actuated switch. The note idenficiation operates as an address of a memory which stores separately addressable frequency control numbers.
The frequency of the oscillator is set according to the frequency control number read out of the memory in response to actuated keyboard switches. Each tone generator in the musical instrument has its own corresponding oscillator. This arrangement permits a number of notes to be generated simultaneously. Each note can be a different musical pitch, or frequency, as in playing a chord. The manner in which such multiple oscillators can be controlled is described in more detail in U.S. Pat. No. 4,067,254 entitled Frequency Number Clock. A method whereby the actuated keyswitches on the keyboard can be assigned to the tone generators is described in U.S. Pat. No. 4,022,098 entitled Keyboard Detect and Assignor.
One serious problem encountered in using a set of variable frequency oscillators is that a musical instrument must be maintained in a proper tuned state. Eash oscillator must accurately reproduce all the required frequencies for the entire range of notes spanned by the instrument's keyboard. Unfortunately variable frequency oscillators are prone to frequency variations with time because changes in the ambient conditions tend to affect the frequency determining circuit components It is difficult and somewhat costly to construct a set of variable frequency oscillators which are stable and accurate in frequency and can be readily tuned to all the notes of the keyboard. If the tuning accuracy is not attained then the pitch of a particular note may depend on which member of the set of tone generators is assigned to a particular actuated keyboard switch.
To alleviate the requirement for a set of accurately tuned variable frequency oscillators, it is desirable to generate the clock pulses for advancing the shift registers in the set of tone generators by deriving the clock pulses from a sngle master clock pulse source. A well-known method for genererating musical frequencies from a single oscillator is to employ what is frequently called a "top octave synthesizer." Such an arrangement uses a set of integer counters. A counter corresponds to each of the 12 notes in the equal tempered musical scale. These counters produce an integer frequency division from the master clock. To produce a set of clock trains corresponding to the frequencies in the top octave of C.sub.7 to C.sub.8 requires a master clock rate of approximately 2 Mhz. In the polyphonic tone synthesizer described in U.S. Pat. No. 4,085,644 the shift clock frequency must be 64 times the frequency of the note being generated. This would require a master clock frequency which is far too high to be implemented using the present state of the art in large scale integrated microelectronics.
An alternative technique for obtaining a plurality of frequencies from a common clock source is to use a non-integer divider. Such a system was used in the computer musical generation system known as Music V and is described on page 51 of the book:
M. V. Mathews, The Technology of Computer Music. The M.I.T. Press, Massachusetts Institute of Technology, Cambridge, Massachusetts and London, England, 1969.
In these systems each actuated keyboard switch is assigned a frequency number. This frequency number when multiplied by the master clock frequency produces the frequency at which data is accessed from a data memory. An objectionable noise-producing problem is inherent in such non-integer frequency divider systems because the frequency number is not a simple integer but instead is some multiple of 2.sup.1/12 which is an irrational number. The use of non-integer dividers for the frequency numbers produces pulse trains at the desired correct average frequency but such pulse trains have intervals between pulses that do not advance at a single constant rate. The number of pulses occurring within a given period of time is varied by eliminating pulses from the master clock at selected intervals controlled by the non-integer frequency number.
A system for using non-integer frequency division from a single master oscillator is described in U.S. Pat. Nos. 3,639,913 and 3,743,755 both of which are entitled Method And Apparatus For Addressing A Memory At Selectively Controlled Rates. Both of these patents describe systems operating on the same principle of memory addressing described in the above referenced book by M. V. Mathews. In these patents a means is disclosed for computing the frequency numbers as an alternative to having these numbers stored in an addressable memory.
If a non-integer frequency divider were used to generate the shift pulses or memory addressing in tone generators such as those described in U.S. Pat. Nos. 4,085,644 and 3,575,792, the unequal spacing of the pulses in the pulse train, or unequal time increments in the addresses, would introduce a highly objectionable noise into the tone generation system. This noise is produced in the form of undesired frequency components which are not harmonically related to the fundamental frequency and produces very displeasing tonal distortion-like effects.
In U.S. Pat. No. 4,114,496 entitled Note Frequency Generator For Polyphonic Tone Synthesizer an arrangement is described for a non-integer frequency divider for synthesizing clock pulse trains at musical frequencies which can be utilized in the Polyphonic Tone Synthesizer described in U.S. Pat. No. 4,085,644. The undesired noise effects are reduced by the method described in U.S. Pat. No. 4,114,496. The noise reduction is accomplished by providing a non-integer divider in the form of a modulo one adder-accumulator which is incremented periodically at the master clock rate by an amount determined by a frequency number selected from a stored set of frequency numbers. This set comprises the binary numbers corresponding to the ratios of the frequency of each note of the keyboard to the frequency of the next highest note on the keyboard. Thus the frequency numbers all have a value less than one. The accumulator adder produces abn overflow pulse whenever the sum exceeds the value of one. The overflow pulses shift successive data words from a register storing a master data set of amplitude values for the tone being generated, the data words being transferred from the register to the input of a digital-to-analog converter. The shift rate determines the pitch of the tone generated by the analog signal from the converter. To compensate for the noise introduced by the irregular pattern of pulses produced by such a non-integer frequency divider, the difference in amplitude between the amplitude values of successive data words in the master data set is generated as each word is shifted out of the register. The difference information is applied to a fractional scaler circuit and is scaled by a fractional amount, then added to the output of the first register, the scale factor being controlled by the highest order bits in the adder-accumulator. For example, using the two highest ratio bits, the scale factors are 0, 1/4, 1/2 and 182 .
In U.S. Pat. No. 4,036,096 entitled Musical Tone Waveshape Generator a system is described in which two memories are used to store identical values of a digital musical waveshape. The addressing data consists of a "integer portion and a fraction portion" which gradually increases from zero to a predetermined value and then returns to zero upon reaching the predetermined value. This is essentially the same memory addressing means that was previously described in the above reference book by M. V. Mathews and described in U.S. Pat. Nos. 3,639,913 and 3,743,755. In U.S. Pat. No. 4,036,096 the two data output A and B values from the wave shape memories are combined using a interpolation relation of the form EQU Y=A+(B-A)X(c) (Eq.1)
In this relation c represents the fraction portion (below radix point) of the memory address data. X(c) is permitted to be arbitrary and is required to satisfy the condition 0.ltoreq.X(c).ltoreq.1 for 0.ltoreq.c.ltoreq.1. If X(c)=c, the familiar simple case of linear interpolation is obtained. This is a rather limited version of data interpolation because it only attempts to weight a stored data point with some function of the fractional difference between the points.
Prior art systems for reducing noise produced by the use of non-integer frequency division to address data from waveshape memories are not completely effective in that the residual noise is not reduced to an inaudible sound level.
It is an object of the present invention to reduce the residual noise in a non-integer frequency divider waveshape memory system to a lower level than that attainable with prior art systems.